///*******************************************************************************
// * Copyright (c) 2000, 2006 IBM Corporation and others.
// * All rights reserved. This program and the accompanying materials
// * are made available under the terms of the Eclipse Public License v1.0
// * which accompanies this distribution, and is available at
// * http://www.eclipse.org/legal/epl-v10.html
// *
// * Contributors:
// *     IBM Corporation - initial API and implementation
// *******************************************************************************/
//package org.eclipse.ui.tests.navigator;
//
//import org.eclipse.core.resources.IFile;
//import org.eclipse.core.resources.IMarker;
//import org.eclipse.core.resources.IProject;
//import org.eclipse.core.resources.IResource;
//import org.eclipse.core.runtime.IAdaptable;
//import org.eclipse.jface.viewers.IStructuredSelection;
//import org.eclipse.jface.viewers.StructuredSelection;
//import org.eclipse.jface.viewers.TreeViewer;
//import org.eclipse.swt.widgets.TreeItem;
//import org.eclipse.ui.IViewPart;
//import org.eclipse.ui.IWorkbenchActionConstants;
//import org.eclipse.ui.IWorkbenchPage;
//import org.eclipse.ui.IWorkbenchWindow;
//import org.eclipse.ui.IWorkingSet;
//import org.eclipse.ui.IWorkingSetManager;
//import org.eclipse.ui.part.ISetSelectionTarget;
//import org.eclipse.ui.tests.harness.util.ActionUtil;
//import org.eclipse.ui.tests.harness.util.FileUtil;
//import org.eclipse.ui.tests.harness.util.UITestCase;
//import org.eclipse.ui.views.navigator.ResourceNavigator;
//
//public class ResourceNavigatorTest extends UITestCase {
//    private IWorkbenchPage activePage;
//
//    private IWorkbenchWindow workbenchWindow;
//
//    private IViewPart view;
//
//    private IProject p1;
//
//    private IProject p2;
//
//    private IFile f1;
//
//    private IFile f2;
//
//    /**
//     * Constructor for ResourceNavigatorTest.
//     * @param testName
//     */
//    public ResourceNavigatorTest(String testName) {
//        super(testName);
//    }
//
//    protected void doSetUp() throws Exception {
//        super.doSetUp();
//        workbenchWindow = openTestWindow();
//        activePage = workbenchWindow.getActivePage();
//    }
//
//    private void setupView() throws Throwable {
//        view = activePage.showView("org.eclipse.ui.views.ResourceNavigator");
//    }
//
//    private void setupResources() throws Throwable {
//        if (p1 == null) {
//            p1 = FileUtil.createProject("TP1");
//            f1 = null;
//        }
//        if (p2 == null) {
//            p2 = FileUtil.createProject("TP2");
//            f2 = null;
//        }
//        if (f1 == null)
//            f1 = FileUtil.createFile("f1.txt", p1);
//        if (f2 == null)
//            f2 = FileUtil.createFile("f2.txt", p2);
//    }
//
//    public void fixTestGlobalBookmarkAction() throws Throwable {
//        setupView();
//        setupResources();
//
//        // Select a file
//        IStructuredSelection sel = new StructuredSelection(f1);
//        ((ResourceNavigator) view).selectReveal(sel);
//
//        // Remember the previous marker count on the file
//        int oldCount = (f1.findMarkers(IMarker.BOOKMARK, true,
//                IResource.DEPTH_INFINITE)).length;
//
//        // Now try the bookmark action
//        ActionUtil.runActionUsingPath(this, workbenchWindow,
//                IWorkbenchActionConstants.M_EDIT + '/'
//                        + IWorkbenchActionConstants.BOOKMARK);
//
//        // Make sure the resource was bookmarked
//        int newCount = (f1.findMarkers(IMarker.BOOKMARK, true,
//                IResource.DEPTH_INFINITE)).length;
//        assertTrue(
//                "Selected file was not bookmarked via Edit->Bookmark action.",
//                oldCount + 1 == newCount);
//    }
//
//    /*	
//     * This test should be moved to an interactive test suite as this
//     * test causes a dialog to popup when the resource is deleted by
//     * the delete action
//     * 
//     public void testGlobalDeleteAction() throws Throwable {
//     setupView();
//     setupResources();
//
//     // Select a file
//     IStructuredSelection sel = new StructuredSelection(f1);
//     ((ResourceNavigator) view).selectReveal(sel);
//     
//     // Now try the delete action
//     ActionUtil.runActionUsingPath(this, workbenchWindow, IWorkbenchActionConstants.M_EDIT + '/' + IWorkbenchActionConstants.DELETE);
//     
//     // Make sure the resource was deleted
//     assertTrue("Selected file was not deleted via Edit->Delete action.", p1.findMember(f1.getName()) == null);
//     f1 = null;
//     }
//     */
//
//    public void testSelectReveal() throws Throwable {
//        setupView();
//        setupResources();
//
//        ISetSelectionTarget part = (ISetSelectionTarget) view;
//        TreeViewer tree = ((ResourceNavigator) view).getViewer();
//
//        // Set the selection in the navigator
//        IStructuredSelection sel1 = new StructuredSelection(f1);
//        part.selectReveal(sel1);
//        // Get the selection the tree has
//        IStructuredSelection treeSel1 = (IStructuredSelection) tree
//                .getSelection();
//        assertTrue("First selection wrong size, should be only one.", treeSel1
//                .size() == 1);
//        IResource resource1 = (IResource) treeSel1.getFirstElement();
//        assertTrue("First selection contains wrong file resource.", resource1
//                .equals(f1));
//
//        // Set the selection in the navigator
//        IStructuredSelection sel2 = new StructuredSelection(p2);
//        part.selectReveal(sel2);
//        // Get the selection the tree has
//        IStructuredSelection treeSel2 = (IStructuredSelection) tree
//                .getSelection();
//        assertTrue("Second selection wrong size, should be only one.", treeSel2
//                .size() == 1);
//        IResource resource2 = (IResource) treeSel2.getFirstElement();
//        assertTrue("Second selection contains wrong project resource.",
//                resource2.equals(p2));
//    }
//
//    public void testWorkingSet() throws Throwable {
//        setupView();
//        setupResources();
//
//        ResourceNavigator navigator = ((ResourceNavigator) view);
//        IWorkingSetManager workingSetManager = fWorkbench
//                .getWorkingSetManager();
//        IWorkingSet workingSet = workingSetManager.createWorkingSet("ws1",
//                new IAdaptable[] { f1 });
//
//        assertNull(navigator.getWorkingSet());
//
//        navigator.setWorkingSet(workingSet);
//        assertEquals(workingSet, navigator.getWorkingSet());
//
//        navigator.setWorkingSet(null);
//        assertNull(navigator.getWorkingSet());
//
//        FileUtil.createFile("f11.txt", p1);
//        navigator.setWorkingSet(workingSet);
//        TreeViewer viewer = navigator.getTreeViewer();
//        viewer.expandAll();
//        TreeItem[] items = viewer.getTree().getItems();
//        assertEquals(p1, items[0].getData());
//        items = items[0].getItems();
//        assertEquals(f1, items[0].getData());
//    }
//}
//
